#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
typedef long long ll;
using namespace std;

//int t;
//int n;
//int a[305][305];
//
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		vector<int> suffix;
//		for (int i = 1; i <= n; i++)
//		{
//			for (int j = 1; j <= n; j++)
//			{
//				cin >> a[i][j];
//			}
//		}
//		for (int i = 1; i <= n; i++) {
//			for (int j = n,cnt=0; j >= 1; j--) {
//				if (a[i][j] != 1) {
//					suffix.push_back(cnt);
//					continue;
//				}
//				else {
//					cnt++;
//				}
//			}
//		}
//		sort(suffix.begin(), suffix.end());
//		int mex = 1;
//		for (auto a : suffix) {
//			if (a >= mex)
//				mex++;
//		}
//		mex = min(mex, n);
//		cout << mex << '\n';
//
//	}
//	return 0;
//}


int t;
int n;
int a[305][305];

int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> t;
	while (t--) {
		cin >> n;
		vector<int> suffix;
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= n; j++)
			{
				cin >> a[i][j];
			}
		}
		for (int i = 1; i <= n; i++) {
			for (int j = n, cnt = 0; j >= 1; j--) {
				if (a[i][j] != 1) {
					suffix.push_back(cnt);
					break;
				}
				else {
					cnt++;
					if(j==1)
						suffix.push_back(cnt);
				}
			}
		}
		sort(suffix.begin(), suffix.end());
		int mex = 0;
		for (auto a : suffix) {
			if (a >= mex)
				mex++;
		}
		mex = min(mex, n);
		cout << mex << '\n';

	}
	return 0;
}